技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
第 11 屆 iThome 鐵人賽
DAY
26
0
自我挑戰組
從不懂,到玩上手的Python語言
系列 第
26
篇
DAY26-物件導向設計
11th鐵人賽
岳岳
團隊
CPR爆肝初心者
2019-10-12 22:07:09
8084 瀏覽
分享至
學習目標
何謂「物件導向程式設計」?
為何使用「物件導向程式設計」?
用不用「物件導向」差在哪裡?
物件導向程式的寫法
物件導向專有名詞
物件導向三大特色
何謂「物件導向設計」
把資料與操作該資料的函數綁在一起的語法
為何使用「物件導向」?
方便程式碼重用
用不用「物件導向」差在哪裡?
不使用物件導向描述一件事
使用物件導向描述一件事
用「物件導向」優點
便於程式碼「重用」
把程式細節隱藏在物件內,
讓主程式變短,
簡化主程式邏輯
用「物件導向」缺點
「基礎建設」較繁雜龐大,
寫個簡單程式需要比傳統寫法,還要更多行
物件導向程式的寫法
先定義好參與這件事的物品有哪些(這些物品叫做 “物件”)
再定義這些物品所需的數量及行為(這些數量及行為叫做 “屬性”與“方法”)
接下來就可用物品間的互動行為 來描述整件事情是如何發生的(這部份的描述稱為“主程式”)
物件導向專有名詞
屬性(Properties)vs. 方法(Methods)
類別 (Class):物件的設計藍圖
物件 (Object):根據類別所建造出來的實體 (Instance)
利用「類別」產生出「物件」,我們稱此動作為「實體化(Instantiation)」
物件導向三大特色
封裝 (Encapsulation)
將資料 (屬性) 與操作此資料的函數 (方法) 包在一起的特性
繼承 (Inheritance)
承接另一個物件所有屬性與方法,並可以加以改造的特性
多型 (Polymorphism)
修改繼承下來的函數,使之名稱相同,但行為卻不同的特性(覆寫Overwriting)
在一個類別內定義多個同名函數,隨著傳入值或呼叫方法不同而有不同行為(多載Overloading)
重點整理
為何使用「物件導向程式設計」
方便程式碼「重用」
屬性 vs. 方法
屬性:物件內的「資料」
方法:物件內的「函數」
類別 vs. 物件
類別:物件的「設計藍圖」
物件:由類別建造出來的一個「實體」
物件導向三大特性
封裝(Encapsulation):讓你把「資料」與「函數」打成一包
繼承(Inheritance):讓你輕易拷貝另一個類別所有屬性與方法
多型(Polymorphism):覆寫(Overwriting)+ 多載(Overloading)
留言
追蹤
檢舉
上一篇
Day25-複合資料結構:字典
下一篇
Day27-物件導向設計 :封裝部分
系列文
從不懂,到玩上手的Python語言
共
30
篇
目錄
RSS系列文
訂閱系列文
9
人訂閱
26
DAY26-物件導向設計
27
Day27-物件導向設計 :封裝部分
28
Day28-物件導向設計封裝部分:建構函數(Constructor)
29
Day29- 例外處理 (Exception)
30
Day30-總結30 天
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22203
篇
完賽人數
602
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
筆電無法使用usb開機重裝系統
要怎知道LINE使用者的使用地址
防火牆互通問題
桌面的使用者文件圖標壞掉
Cisco 防火牆密碼確認正確,可是無法登入
函數問題
一開機就自動鎖定帳戶
開啟Microsoft Edge 瀏覽器無法開啟網頁,出現錯誤訊息
Audiosrv Windows Audio 高占用 CPU
bat檔截斷問題
熱門回答
防火牆互通問題
開啟Microsoft Edge 瀏覽器無法開啟網頁,出現錯誤訊息
if函數中的>&<&=是否可以使用儲存格代替
筆電無法使用usb開機重裝系統
Palo alto防火牆網頁解密問題?
熱門文章
[翻譯]使用AI工具寫程式碼時如何避免「AI幻覺」?
每日一篇學習筆記 直到我做完專題 :( [Day4]
每日一篇學習筆記 直到我做完專題 :( [Day5]
每日一篇學習筆記 直到我做完專題 :( [Day6]
每日一篇學習筆記 直到我做完專題 :( [Day7]
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}